Update an experiment.
curl --request PUT \
--url https://your_a2_service/api/manager/experiments/{experiment_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"buckets": [
{
"name": "control",
"ratio": 0.4
},
{
"name": "variant",
"ratio": 0.6
}
],
"end_date": "2026-05-31T23:59:59+09:00",
"name": "배너 소재 A/B 테스트 (수정)",
"start_date": "2026-05-01T00:00:00+09:00",
"status": "completed",
"target_id": "<placement_id>",
"target_type": "placement"
}
'import requests
url = "https://your_a2_service/api/manager/experiments/{experiment_id}"
payload = {
"buckets": [
{
"name": "control",
"ratio": 0.4
},
{
"name": "variant",
"ratio": 0.6
}
],
"end_date": "2026-05-31T23:59:59+09:00",
"name": "배너 소재 A/B 테스트 (수정)",
"start_date": "2026-05-01T00:00:00+09:00",
"status": "completed",
"target_id": "<placement_id>",
"target_type": "placement"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
buckets: [{name: 'control', ratio: 0.4}, {name: 'variant', ratio: 0.6}],
end_date: '2026-05-31T23:59:59+09:00',
name: '배너 소재 A/B 테스트 (수정)',
start_date: '2026-05-01T00:00:00+09:00',
status: 'completed',
target_id: '<placement_id>',
target_type: 'placement'
})
};
fetch('https://your_a2_service/api/manager/experiments/{experiment_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://your_a2_service/api/manager/experiments/{experiment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'buckets' => [
[
'name' => 'control',
'ratio' => 0.4
],
[
'name' => 'variant',
'ratio' => 0.6
]
],
'end_date' => '2026-05-31T23:59:59+09:00',
'name' => '배너 소재 A/B 테스트 (수정)',
'start_date' => '2026-05-01T00:00:00+09:00',
'status' => 'completed',
'target_id' => '<placement_id>',
'target_type' => 'placement'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your_a2_service/api/manager/experiments/{experiment_id}"
payload := strings.NewReader("{\n \"buckets\": [\n {\n \"name\": \"control\",\n \"ratio\": 0.4\n },\n {\n \"name\": \"variant\",\n \"ratio\": 0.6\n }\n ],\n \"end_date\": \"2026-05-31T23:59:59+09:00\",\n \"name\": \"배너 소재 A/B 테스트 (수정)\",\n \"start_date\": \"2026-05-01T00:00:00+09:00\",\n \"status\": \"completed\",\n \"target_id\": \"<placement_id>\",\n \"target_type\": \"placement\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://your_a2_service/api/manager/experiments/{experiment_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"buckets\": [\n {\n \"name\": \"control\",\n \"ratio\": 0.4\n },\n {\n \"name\": \"variant\",\n \"ratio\": 0.6\n }\n ],\n \"end_date\": \"2026-05-31T23:59:59+09:00\",\n \"name\": \"배너 소재 A/B 테스트 (수정)\",\n \"start_date\": \"2026-05-01T00:00:00+09:00\",\n \"status\": \"completed\",\n \"target_id\": \"<placement_id>\",\n \"target_type\": \"placement\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://your_a2_service/api/manager/experiments/{experiment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"buckets\": [\n {\n \"name\": \"control\",\n \"ratio\": 0.4\n },\n {\n \"name\": \"variant\",\n \"ratio\": 0.6\n }\n ],\n \"end_date\": \"2026-05-31T23:59:59+09:00\",\n \"name\": \"배너 소재 A/B 테스트 (수정)\",\n \"start_date\": \"2026-05-01T00:00:00+09:00\",\n \"status\": \"completed\",\n \"target_id\": \"<placement_id>\",\n \"target_type\": \"placement\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"end_date": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"start_date": "2023-11-07T05:31:56Z",
"target_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"target_type": "ad_unit",
"updated_at": "2023-11-07T05:31:56Z",
"buckets": [],
"ext": "<unknown>",
"no": 123,
"status": "inactive"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Bearer authentication. Pass the access token in the Authorization: Bearer <token> header.
Path Parameters
Body
Request body for PUT /experiments/{experiment_id}.
Full replacement — all fields required.
1 - 15 elementsShow child attributes
Show child attributes
End date of the experiment (UTC).
Human-readable name of the experiment.
Start date of the experiment (UTC).
Identifier of the target entity.
Type of the target entity (ad unit or placement).
ad_unit, placement Extension field for additional experiment-specific data.
Lifecycle status of the experiment.
inactive, active, completed Response
Successful Response
Response schema for experiment records.
End date of the experiment (UTC).
Unique identifier for the experiment (UUID v4).
Human-readable name of the experiment.
Start date of the experiment (UTC).
Identifier of the target entity.
Type of the target entity (ad unit or placement).
ad_unit, placement Buckets defining traffic splits and line item assignments.
1 - 15 elementsShow child attributes
Show child attributes
Extension field for additional experiment-specific data.
Lifecycle status of the experiment.
inactive, active, completed Was this page helpful?
curl --request PUT \
--url https://your_a2_service/api/manager/experiments/{experiment_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"buckets": [
{
"name": "control",
"ratio": 0.4
},
{
"name": "variant",
"ratio": 0.6
}
],
"end_date": "2026-05-31T23:59:59+09:00",
"name": "배너 소재 A/B 테스트 (수정)",
"start_date": "2026-05-01T00:00:00+09:00",
"status": "completed",
"target_id": "<placement_id>",
"target_type": "placement"
}
'import requests
url = "https://your_a2_service/api/manager/experiments/{experiment_id}"
payload = {
"buckets": [
{
"name": "control",
"ratio": 0.4
},
{
"name": "variant",
"ratio": 0.6
}
],
"end_date": "2026-05-31T23:59:59+09:00",
"name": "배너 소재 A/B 테스트 (수정)",
"start_date": "2026-05-01T00:00:00+09:00",
"status": "completed",
"target_id": "<placement_id>",
"target_type": "placement"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
buckets: [{name: 'control', ratio: 0.4}, {name: 'variant', ratio: 0.6}],
end_date: '2026-05-31T23:59:59+09:00',
name: '배너 소재 A/B 테스트 (수정)',
start_date: '2026-05-01T00:00:00+09:00',
status: 'completed',
target_id: '<placement_id>',
target_type: 'placement'
})
};
fetch('https://your_a2_service/api/manager/experiments/{experiment_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://your_a2_service/api/manager/experiments/{experiment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'buckets' => [
[
'name' => 'control',
'ratio' => 0.4
],
[
'name' => 'variant',
'ratio' => 0.6
]
],
'end_date' => '2026-05-31T23:59:59+09:00',
'name' => '배너 소재 A/B 테스트 (수정)',
'start_date' => '2026-05-01T00:00:00+09:00',
'status' => 'completed',
'target_id' => '<placement_id>',
'target_type' => 'placement'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your_a2_service/api/manager/experiments/{experiment_id}"
payload := strings.NewReader("{\n \"buckets\": [\n {\n \"name\": \"control\",\n \"ratio\": 0.4\n },\n {\n \"name\": \"variant\",\n \"ratio\": 0.6\n }\n ],\n \"end_date\": \"2026-05-31T23:59:59+09:00\",\n \"name\": \"배너 소재 A/B 테스트 (수정)\",\n \"start_date\": \"2026-05-01T00:00:00+09:00\",\n \"status\": \"completed\",\n \"target_id\": \"<placement_id>\",\n \"target_type\": \"placement\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://your_a2_service/api/manager/experiments/{experiment_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"buckets\": [\n {\n \"name\": \"control\",\n \"ratio\": 0.4\n },\n {\n \"name\": \"variant\",\n \"ratio\": 0.6\n }\n ],\n \"end_date\": \"2026-05-31T23:59:59+09:00\",\n \"name\": \"배너 소재 A/B 테스트 (수정)\",\n \"start_date\": \"2026-05-01T00:00:00+09:00\",\n \"status\": \"completed\",\n \"target_id\": \"<placement_id>\",\n \"target_type\": \"placement\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://your_a2_service/api/manager/experiments/{experiment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"buckets\": [\n {\n \"name\": \"control\",\n \"ratio\": 0.4\n },\n {\n \"name\": \"variant\",\n \"ratio\": 0.6\n }\n ],\n \"end_date\": \"2026-05-31T23:59:59+09:00\",\n \"name\": \"배너 소재 A/B 테스트 (수정)\",\n \"start_date\": \"2026-05-01T00:00:00+09:00\",\n \"status\": \"completed\",\n \"target_id\": \"<placement_id>\",\n \"target_type\": \"placement\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"end_date": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"start_date": "2023-11-07T05:31:56Z",
"target_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"target_type": "ad_unit",
"updated_at": "2023-11-07T05:31:56Z",
"buckets": [],
"ext": "<unknown>",
"no": 123,
"status": "inactive"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}